package com.yixin.hospital.entity.vo;

import com.yixin.hospital.entity.bo.UserDeptWorkAddressJobOffice;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.*;

@Data
public class UserDetailVO {
    private Long id;
    private String phone;
    private String jobNumber;
    private String name;
    private String idCard;
    private String education;
    private String jobDuty;
    private Integer jobDutyDay;
    private Long jobTitle;
    private Long job;
    private Long jobType;
    private String jobOffice;
    private List<Long> jobOfficeList;
    private Date joinTime;
    private Integer joinDay;
    private Date toRealWorkerTime;
    private Date leaveTime;
    private BigDecimal registerPrice;
    private Integer status;
    private String sex;
    private Integer auditStatus;
    private String aesPassword;
    private String password;

    // 职业名称
    private String jobName;
    // 职称名称
    private String jobTitleName;
    // 职务集合
    private List<JobDutyVO> jobDutyList;
    // 用户菜单权限
    private List<Long> userMenus;
    // 登录用户是否可审批
    private Boolean canAudit = false;
    // 用户部门 以及工作地点
    private List<UserDeptAndWorkAddressVO> userDeptAndWorkAddressVOList;

    // 用户登录选择的部门-工作地点-科室
    private UserDeptWorkAddressJobOffice userDeptWorkAddressJobOffice;
    // 库权限
    private List<DrugDepositoryUserAuthVo> drugDepositoryUserAuthList;


    @Data
    @ToString
    @NoArgsConstructor
    public static class DrugDepositoryUserAuthVo {
        private Long id;
        private Long drugDepositoryId;
        private String drugDepositoryName;
        private Boolean isQuery=false;
        private Boolean isSell=false;
        private Boolean isInput=false;
        private Boolean isOutput=false;
        private Boolean isCheck=false;
        private Boolean isWriteOff=false;
        private Boolean isPurchase=false;
        private Boolean isCostPrice=false;

        public DrugDepositoryUserAuthVo(Long drugDepositoryId, String drugDepositoryName) {
            this.drugDepositoryId = drugDepositoryId;
            this.drugDepositoryName = drugDepositoryName;
        }
    }
}
